4차 앵콜
반도체 SW 엔지니어를 위한 새로운 SoC 위에 리눅스 디바이스 드라이버 포팅하기
Linux 실무 만큼은 제대로 배울 수 있습니다.
반도체 SW 엔지니어를 위한 새로운 SoC 위에 리눅스 디바이스 드라이버 포팅하기

업계 선배와 만나
배우고, 나누고, 성장해요!

누구나 시행착오를 겪습니다. 혼자서는 더 많은 노력과 시간이 필요하죠. 이미 경험한 사람의 이야기에서 시작한다면 어떨까요?
실무PT에서 업계 선배를 만나 시행착오를 줄이는 순간을 경험하세요.
  • 실무 과제

    실무 과제를 통해 배우면
    즉시 업무에 적용하고
    성과를 낼 수 있어요.

  • 피드백과 토의

    라이브 피드백을 통해
    솔루션을 내 업무에 대입하고
    현직자의 방법을 익히세요.

  • 바로 적용

    오늘 익힌 실무 스킬이
    즉시 내 업무 성과가 되는
    놀라운 경험으로 이어져요.

반도체 소프트웨어 엔지니어 분들을 위한
SoC 위에 리눅스 드라이버 포팅하기 트레이닝입니다.

경험자 대상
경험자 대상 레벨업 트레이닝입니다.
진행 과정
6회의 라이브와 5회의 실무과제가 제공됩니다.

트레이닝은 6주 동안
이렇게 진행됩니다.

  • 듣고

    실무 노하우가 가득 담긴 현직자 라이브 세션을 진행합니다.

  • 해보고

    그렇게 배운 내용을 실무 과제를 수행하고 피드백을 받습니다.

  • 나누고

    라이브 세션에서 크고 작은 실무 고민을 나누고 해결합니다.

  • 성과내요!

    오늘 익힌 내용은 실무에 적용해보며 성과를 만듭니다.

먼저 트레이닝을 받은 분들의
이야기를 들어보세요.

저는 완전히 모르는 상태에서 시작했고 기대도
높지 않았는데, 끝까지 해내고 보니 굉장히
성장한 느낌
이에요.
직장 다니면서 뭔가 끝까지 해본 게 처음이라..

'아무것도 모르는 사람도 할 수 있어요'라는 문구가 진짜 거짓이 아니었네요.

- 수료생 김태희님

매주 받는 강의 자료랑 과제 내용이 업무에서
흔하게 일어날 수 있는 상황 중심
이어서,
'우리 회사라면 이런 식으로 해볼 수 있겠다.'
라고 생각하며 수업을 들었구요.

이론도 실무랑 연계되는 내용으로 알려주셔서
바로 업무에 적용할 수 있었어요.

- 수료생 김태형님

라이브니까, 공부하면서 궁금한 걸 바로바로
물어볼 수 있는게 제일 좋았어요!


VOD 강의 많이 들어봤지만 VOD는 궁금한 걸
물어볼 수도 없고, 물어볼 수 있다고 해도
답변 받는데 진짜 오래 걸렸거든요.
소통이 즉각적이라는 게 가장 좋았어요.

- 수료생 임미성님

멘토님도 퇴근하고 강의하시느라 힘드실 텐데
라이브 강의 때마다 정말 정성스럽게
과제 리뷰랑 피드백
을 너무 잘 해주셨구요.

꼭 강의 때가 아니더라도 어려운 거 있을 때마다
하나하나 같이 해주시고 질문도 잘 받아주셔서

더 열심히 할 수 있었어요.

- 수료생 강지현님

개발된 SoC 위에 리눅스를 포팅 하는 능력을 갖추고, 리눅스 디바이스 드라이버 전문가로 발돋움하실 수 있도록 돕겠습니다!

안녕하세요! 리눅스 소프트웨어 개발 실무 PT를 진행하게 될 뚠뚠개미라고 합니다!


저는 대학원에서 임베디드 소프트웨어를 전공했고, 이후 국내 대기업을 거쳐 현재는 외국계 IT 기업에서 근무하고 있으며, 소프트웨어 개발자로 10년 이상 경력을 쌓아왔습니다.


저는 이 클래스에 앞서, 리눅스에 처음 입문한 분들을 대상으로 클래스를 운영해 왔습니다. 많은 분들이 해당 클래스를 통해 리눅스 드라이버 개발에 친숙해졌다고 생각합니다.


다만, 기존의 제 클래스를 수강한 분들이나, 이미 입문 이상의 실력이 있으신 분들께는 한 차원 더 높은 실력으로 올라가기 위한 심화 수업이 필요하다고 생각하게 되었습니다. 한 차원 더 높은 실력으로 성장이 필요한 데에는 사내에서 좀 더 숙련된 기술을 통해 승진하는 것이든, 대기업 등 좀 더 대우가 나은 곳으로의 이직이든 각자의 이유가 있을 것으로 생각합니다.


많은 분들이 느끼실 텐데요. 실력자로 올라갈 때 가장 큰 어려움은 '실습할 수 있는 대상'의 부재일 것입니다. 비싼 임베디드 보드나 장비를 사기도 하고 커널 코드를 처음부터 한 줄씩 맨땅에 헤딩하는 식으로 분석해 보기도 할 것입니다. 그러한 방법이 완전히 잘못된 방법은 아니지만, 저는 조금 더 편하고 효과적인 방법을 제공해 드리고자 합니다.


저는 상당 기간 소프트웨어 개발자로 경력을 쌓으면서 시스템 소프트웨어 분야는 정보가 매우 부족한 분야임을 체감하였습니다. 따라서 제가 가진 노하우을 실무자분들께 나눠드리고 싶습니다. 제가 연마해 온 기술이 분야의 전부는 아니겠지만, 적어도 많은 분들과 지식을 나눌 수 있는 시간이 되었으면 좋겠습니다!

시스템 소프트웨어 10년차 이상

뚠뚠개미 멘토님

현) 해외 반도체 기업 소프트웨어 엔지니어

- SoC 시스템 소프트웨어 개발


전) 국내 대기업 연구 개발 부문 소프트웨어 엔지니어

- 디바이스 드라이버 및 서비스 데몬 개발

- 사내 수상 경력 다수


논문) Top tier 학회, SCI 저널

수상) 임베디드 소프트웨어 경진대회 (주최 : 산업통상자원부)

6주 동안,
저와 함께 다루게 될 내용입니다

리눅스 디바이스 드라이버 분야의 전문가로 올라가기 위한 발판

리눅스 디바이스 드라이버에 막상 입문했는데, 어떻게 실력을 더 쌓아야 할지 갈피를 잡지 못하는 분들이 많습니다. 더불어, 새로운 디바이스에 필요한 디바이스 드라이버를 어떻게 개발해야 할지 몰라 헤매고 있는 분들도 많습니다. 이번 수업에서는 QEMU라는 잘 알려진 도구를 사용해 별도의 장비 없이도 이러한 과정을 경험하고, 방향성을 잡도록 돕고자 합니다.

SoC 개발 실무를 위한 리눅스 디바이스 드라이버 개발 방법

삼성전자, LG전자, 현대차와 같은 많은 대기업의 주 종목은 새로운 시스템 반도체 즉, SoC(System On Chip)를 만드는 것입니다. 이를 위해서는 임베디드 소프트웨어 개발자가 필수로 요구됩니다. 임베디드 소프트웨어 개발자의 주 업무 중 하나는 바로 새로운 디바이스에 맞추어 새로운 디바이스 드라이버를 개발하는 것입니다. 이번 수업에서는 실무에서 가장 많이 사용되는 디바이스 유형을 중심으로 디바이스 드라이버를 개발하는 방법을 알려드리도록 하겠습니다.

실무 SoC 개발 위한 프로세서와 디바이스 간 상호작용 이해

학부 때 막연하게 운영체제 이론에서 배웠던 다양한 용어들이 있지만, 실제 SoC에서는 어떤 식으로 활용되는지 몰라 막연한 두려움이 있으실 수 있습니다. 이번 수업에서는 QEMU를 사용해 실제 Soc와 같은 형태의 디바이스를 실제로 구현하고 테스트합니다. 이러한 실습을 통해 막연한 두려움을 이겨내고, 실무 활용 방법을 이해하실 수 있게 됩니다.

새로 개발된 SoC 위에 리눅스를 포팅 하기 위한 프로세스

새로운 SoC를 개발했다면 당연히 그 위에서 동작하는 소프트웨어도 갖추어야 할 것입니다. 특히 리눅스는 가장 많이 사용되는 운영체제로서, 디바이스 드라이버 개발 못지않게, 실무에서는 리눅스를 포팅 하는 능력이 가장 많이 요구되곤 합니다. 본 수업을 통해, 리룩스를 포팅 하기 위해 알아야 할 디바이스 트리에 대한 개념을 파악하고 실제로 노드를 구성해 보는 실습형 학습을 통해, 실무에서 제대로 활용하실 수 있도록 돕고자 합니다.

주차별 트레이닝 과정을 알려드립니다

10월 1일(화) 20:00~23:00

1주차

새로운 SoC(System On Chip) 설계하기 첫걸음
  • 01

    오리엔테이션

    - 멘토 및 클래스 메이트 자기소개

    - 클래스 대상 및 목표 안내

    - 전체 커리큘럼 안내

  • 02

    개발 환경 구축하기

    - Docker를 사용한 우분투 환경 설정

    - QEMU, 커널, 빌드루트

  • 03

    QEMU로 새로운 SoC 설계하기

    - QEMU machine 추가

  • 04

    CPU 파악하기

    - GIC (Generic Interrupt Controller)

    - 멀티코어 ARMv8

    - TImer

  • 05

    디바이스 트리 알아보기

    - 커널에 디바이스 트리 추가하기

    - 디바이스 트리 노드 작성법

  • 06

    새 SoC에서 리눅스 부팅하기

    - UART 설정하기 (ARM PL011)

    - Initramfs 설정하기

  • 07

    실시간 Q&A

  • 과제

    주어진 데이터 시트에 맞는 SoC 구현하기

    - QEMU를 활용한 SoC 설계

    - SoC 디바이스 트리 작성

10월 8일(화) 20:00~23:00

2주차

MMIO(Memory Mapped I/O)를 사용하는 하드웨어 설계 및 개발
  • 01

    1주차 세션 회고 및 과제 피드백

  • 02

    AMBA 버스 이해하기

    - AHB, APB, Bridge

  • 03

    MMIO 개념 파악하기

    - PIO와 MMIO의 차이

  • 04

    인터럽트와 폴링 개념 파악하기

    - 인터럽트와 폴링의 장단점

  • 05

    새로운 MMIO 하드웨어 만들기

    - QEMU에서 MemoryRegion 사용하기

  • 06

    MMIO 하드웨어 드라이버 만들기

    - 물리메모리 사용하기

    - 로우메모리, 하이메모리

  • 07

    실시간 Q&A

  • 과제

    Host logging 디바이스 개발하기

    - QEMU에 새로운 디바이스 추가

    - 리눅스 디바이스 드라이버 개발

10월 15일(화) 20:00~23:00

3주차

DMA(Direct Memory Access)를 사용하는 하드웨어 설계 및 개발
  • 01

    2주차 세션 회고 및 과제 피드백

  • 02

    DMA 흐름 이해하기

    - DMA와 MMIO의 차이

  • 03

    Scatter/Gather 개념 파악하기

    - Scatter/Gather가 필요한 이유

  • 04

    DMA 컨트롤러 추가하기

    - ARM PL330

  • 05

    DMA API를 사용하여 드라이버 개선하기

  • 06

    MMC 하드웨어로 Rootfs 사용하기

  • 07

    실시간 Q&A

  • 과제

    DMA로 MMIO 디바이스 성능 개선하기

    - 앞서 과제에서 개발한 디바이스에 DMA를 접목

10월 22일(화) 20:00~23:00

4주차

GPIO(General Purpose I/O)를 사용하는 하드웨어 설계 및 개발
  • 01

    3주차 세션 회고 및 과제 피드백

  • 02

    GPIO 이해하기

    - GPIO를 사용하는 목적

  • 03

    GPIO의 물리적인 구조 파악하기

    - Pull-up, Pull-down

  • 04

    새로운 GPIO 하드웨어 만들기

    - ARM PL061

  • 05

    libgpiod 툴을 사용하여 GPIO 테스트하기

    - GPIOLIB

  • 06

    GPIO 하드웨어 드라이버 만들기

    - 커널에서 gpio 사용하는 방법

  • 07

    실시간 Q&A

  • 과제

    LED와 버튼을 gpiochip과 연동하기

    - QEMU에 새로운 디바이스 추가

    - 리눅스 디바이스 드라이버 개발

10월 29일(화) 20:00~23:00

5주차

I2C 버스를 사용하는 하드웨어 설계 및 개발
  • 01

    4주차 세션 회고 및 과제 피드백

  • 02

    I2C 통신 이해하기

    - I2C 통신을 사용하는 목적

    - I2C 통신의 흐름

  • 03

    I2C의 물리적인 구조 파악하기

    - I2C의 핀 커넥트

  • 04

    새로운 I2C 하드웨어 만들기

    - ARM SBCon

  • 05

    I2C 툴을 사용하여 I2C 테스트하기

    - /dev/i2c-*

  • 06

    I2C 하드웨어 드라이버 만들기

    - 커널에서 i2c 사용하는 방법

  • 07

    실시간 Q&A

  • 과제

    Pseudo 센서를 가지고 있는 I2C 디바이스 개발하기

    - QEMU에 새로운 디바이스 추가

    - 리눅스 디바이스 드라이버 개발

11월 5일(화) 20:00~23:00

6주차

SPI 버스를 사용하는 하드웨어 설계 및 개발
  • 01

    5주차 세션 회고 및 과제 피드백

  • 02

    SPI 통신 이해하기

    - SPI 통신을 사용하는 목적

    - SPI 통신의 흐름

  • 03

    SPI의 물리적인 구조 파악하기

    - SPI의 핀 커넥트

    - 칩 셀렉트 핀

  • 04

    새로운 SPI 하드웨어 만들기

    - ARM PL022

  • 05

    SPI 툴을 사용하여 SPI 테스트하기

    - /dev/spidev0.*

  • 06

    SPI 하드웨어 드라이버 만들기

    - 커널에서 spi 사용하는 방법

  • 07

    6주간 진행 Wrap up

6주 뒤에는
이런 일을 할 수 있습니다

새로 개발된 SoC 위에 리눅스를 포팅 할 수 있게 됩니다.

QEMU를 활용한 실습을 통해 새로운 디바이스를 설계할 수 있게 됩니다.

프로세서와 디바이스의 상호작용을 이해하고 SoC 실무에 활용할 수 있습니다.

리눅스 디바이스 드라이버 입문 이후 막연했던 성장의 방향성을 잡을 수 있습니다.

이런 분들을 위한 과정입니다

새로 개발된 SoC 위에 리눅스를 포팅 하기 위한 실무 지식이 필요한 시스템 개발자

QEMU 통한 실습과 피드백을 통해 새로운 디바이스 설계 역량을 갖추고 싶은 개발자

실무 SoC 개발을 위해 프로세서와 디바이스 간 상호작용을 제대로 파악하고 싶은 개발자

리눅스 디바이스 드라이버 입문 이후 성장의 방향성이 막연했던 개발자

이번 수업을 원활하게 수강하기 위해서는 다음의 기초지식이 필요합니다.

- 기초적인 리눅스 명령어를 다루실 수 있어야 합니다.

- 리눅스 커널을 컴파일 할 수 있어야 합니다.

- 전기/전자 및 컴퓨터공학 학부 1학년 수준에 해당하는 C언어 기초(포인터 개념까지) 숙지가 필요합니다.

많은 기업의 실무자가 함께한 트레이닝 과정입니다.

  • 카카오엔터테인먼트
  • LG
  • 아이디어스
  • 라인플러스
  • 쿠팡
  • 카카오페이
  • 쏘카
  • SK브로드밴드
  • 사람인
  • 해커스
  • 차이커뮤니케이션즈
  • 그린랩스
  • LG전자
  • 아모레퍼시픽
  • 중고나라
  • 삼성증권
  • 하이퍼커넥트

트레이닝 도입 문의
도입 문의를 남겨주시면 우리 기업을 위한 맞춤 트레이닝 상담을 제공합니다.
실무PT 트레이닝,
왜 다를까요?
01
온라인 라이브 세션과 실무 기반 피드백
트레이닝은 실무에 가장 가까운 내용을 다루는 만큼 온라인 라이브로 진행됩니다.
일방적인 VOD 방식에서 벗어나 묻고 답하며 이해할 수 있도록 알려드립니다.
진행된 라이브 세션은 모두 녹화되어 트레이닝 기간 동안 자유롭게 시청하고
복습할 수 있는 VOD가 제공됩니다.

02
업무에 적용할 수 있는 실무 맞춤형 과제
트레이닝 내용을 실무에 적용할 수 있도록 철저히 실무 기반의 과제가 주어집니다.
이론은 알겠는데, 실무에 막상 적용하려니 잘 되지 않는 경험은 누구나 있습니다.
매주 진행하는 라이브 세션에서 과제 수행에 필요한 기초 이론, 방법론을 배우고
실무 맞춤형 과제를 통해 업무에 적용할 수 있게 도와드립니다.

03
참여자 전용 채팅방과 상시 피드백
참여자 전용 채팅방을 통해 과정에 대한 안내, 실무 자료 공유, 질의응답 및
피드백이 진행됩니다. 과제를 해결하며 어려운 점, 실무에서 궁금했던 내용까지
언제든 질문할 수 있습니다. 트레이닝 기간 동안 어디에서도 찾기 어려운
가장 가까운 랜선사수가 되어 드립니다.

자주 묻는 질문


  • Q. 

    실습 환경이 어떻게 되나요?

    A. 

    우분투 리눅스를 실행할 환경이 필요합니다. Virtualbox 등으로 설치하시면 됩니다.


  • Q. 

    어떤 기본지식이 필요한가요?

    A. 

    기초적인 리눅스 명령어를 다룰 수 있어야 하고, 리눅스 커널을 컴파일 할 수 있어야 합니다.

    "반도체 SW 엔지니어를 위한 리눅스 디바이스 드라이버 개발하기"를 먼저 들어보는 것을 추천합니다.


  • Q. 

    어떤 코딩 실력이 요구 되나요?

    A. 

    어려운 코딩 수준이 요구 되지 않으며, 전기/전자 및 컴공 학부 1학년 수준 해당하는 C언어의 기초(포인터 개념 까지)는 숙지하셔야 합니다.


  • Q. 

    세션 진행은 어떻게 이루어지나요?

    A. 

    모든 세션은 줌 온라인 라이브로 진행됩니다. 세션은 기초 이론과 현직자 노하우를 듣는 이론 파트와 피드백 및 질의응답 파트로 구성됩니다.

  • Q. 

    라이브 세션을 듣지 못했을 경우 강의 녹화본을 볼 수 있나요?

    A. 

    라이브 세션에 참여하지 못한 분들을 위해 세션을 녹화한 복습 VOD가 제공됩니다. 복습 VOD는 영업일 기준 세션 다음날 업로드 됩니다.

  • Q. 

    복습VOD는 언제까지 볼 수 있나요?

    A. 

    복습VOD의 기본 제공 기간은 마지막 세션일 기준 7일이지만, 과제를 60% 이상 제출한 경우 마지막 세션일 기준 한달 후까지 볼 수 있습니다.

  • Q. 

    수료증은 어떻게 받을 수 있나요?

    A. 

    프로그램에 70% 이상 참여한 경우, 클래스룸에서 직접 다운로드 받을 수 있습니다. 참여율 산정 기준은 아래를 참고해주세요.

    - 6주 과정 : 총 11회(세션 참여 6회 + 과제 제출 5회) 중 8회 이상 참여시 수료증 발급
    - 5주 과정 : 총 9회(세션 참여 5회 + 과제 제출 4회) 중 7회 이상 참여시 수료증 발급
    - 4주 과정 : 총 7회(세션 참여 4회 + 과제 제출 3회) 중 5회 이상 참여시 수료증 발급
    - 3주 과정 : 총 5회(세션 참여 3회 + 과제 제출 2회) 중 4회 이상 참여시 수료증 발급
    - 2주 과정 : 총 3회(세션 참여 2회 + 과제 제출 1회) 중 3회 이상 참여시 수료증 발급

  • Q. 

    법인카드 결제로 인한 증빙자료가 필요한데, 어떻게 받을 수 있나요?

    A. 

    법인 증빙자료의 경우 법인마다 다른 경우가 많아, 상담 채널로 문의해주시면 더욱 빠르게 처리할 수 있습니다.
    수료증의 경우 프로그램의 70% 이상 참여한 경우에만 발급됩니다.

  • Q. 

    기업 교육도 가능한가요?

    A. 

    네, 물론입니다! 실무PT는 기업 단체 구매 또는 기업 맞춤 교육을 제공하고 있습니다.
    기업 교육 도입에 대한 문의를 남겨주시면 담당자가 최대한 빠르게 연락을 드리겠습니다.

환불규정

  • 코멘토는 아래과 같은 경우에 환불을 해드리고 있습니다.

  • 1. 신청자가 본인 의사로 참여를 포기한 경우

  • 2. 코멘토가 진행을 할 수 없게 된 경우

  • [실무PT 세부환불 규정 - 6주 트레이닝]

  • - 시작 전 취소(D-1일까지) : 결제금액 전액 환불

  • - 1주차 시작일 ~ 2주차 시작일 D-1 : 결제금액의 2/3 환불

  • - 2주차 시작일 ~ 3주차 시작일 D-1 : 결제금액의 1/2 환불

  • - 3주차 시작일 ~ 캠프 종료일 : 환불 불가

유의사항

  • 원활한 참여를 위해 트레이닝 진행에 필요한 환경을 확인해 미리 준비하시기 바랍니다.

  • 실무PT는 현직자 멘토와 러닝메이트가 함께 만들어가는 트레이닝입니다.
    트레이닝의 분위기를 흐리거나 불성실하게 참여하는 경우 참여 제재 조치를 받을 수 있습니다.

  • 과제는 모두 개인과제로 진행되며, 평균 주 2~3시간이 소요됩니다. 업무 및 이직 준비와 병행할 수 있습니다.

  • 과제 제출 기한을 지키지 못한 경우, 개별 피드백을 받을 수 없습니다.

  • 트레이닝별 최소 인원 모집이 미달된 경우, 트레이닝 일정이 조정될 수 있습니다.

뚠뚠개미 리드멘토
멘티님께 더욱 자세한 과정을 소개해 드리고 싶어요!